1. 使用有限連接
養(yǎng)成使用盡可能少的連接的習(xí)慣,使用更多的連接會降低查詢性能。僅在絕對需要時使用。
2. 索引和主鍵
確保為經(jīng)常搜索的列創(chuàng)建索引。
確保將主鍵放在表中,這也有助于提高性能。
3.使用查詢優(yōu)化/計劃報告
該報告將查詢處理分成多個部分,并告訴您每個部分花費了多少時間。
對識別問題有很大幫助,您可以相應(yīng)地采取必要的措施。
注意:名稱可能取決于 DB 到 DB。
4.限制Select中的列
避免獲取所有列或任何未使用的列,專注于完成給定任務(wù)所需的列。
不要嘗試在使用未使用列的任何地方重復(fù)使用相同的查詢。?
創(chuàng)建另一個方法,并編寫一個單獨的查詢。
5. 避免創(chuàng)建太長的水平表格
避免在單個表中創(chuàng)建 100 列,使用規(guī)范化。?
將表分解為不同的表。
用主鍵/外鍵映射它們。
6.避免基于通配符的搜索
基于通配符的搜索會降低查詢性能。
它掃描所有記錄以找到正確的結(jié)果。
如果可以使用替代方法完成相同的工作,請避免使用它們。
7.避免子查詢
太多的子查詢會嚴重降低性能。?
它們?yōu)楂@取的每一行執(zhí)行,因此建議限制它們的使用。
8. 更喜歡 EXISTS 而不是 Join
有時,為了檢查記錄是否存在,我們使用主表連接。
例如,如果您不檢索已連接的另一個表的列,則使用 E??XISTS 而不是 Join。
EXISTS 的速度非常快!
9.優(yōu)先搜索主鍵
主鍵針對搜索進行了優(yōu)化,盡可能始終在 where 子句中使用主鍵,而不是使用任何非主鍵列。
10.考慮,重組你的表
如果您發(fā)現(xiàn)數(shù)據(jù)庫設(shè)計存在一些故障,您應(yīng)該考慮重組。
或者,如果您后來發(fā)現(xiàn)有更好的設(shè)計可以解決性能問題。使用它作為最后的手段。